iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
AI Engineering

生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則系列 第 15

第 15 律:交接可以很快,但下一步需要的差異有沒有留下?

  • 分享至 

  • xImage
  •  

昨天談上一次的決定這次還記不記得。今天談交接:把工作交給下一個對話、下一個人、下一個模型時,留下的東西夠不夠。

今晚的實驗有一個我沒設計到的洞。洞本身就是這條律。先講定律,再講洞。

定律

我目前把它寫成這樣:

若交接後的全部可用資訊無法區分兩個需要不同後續行動的狀態,就不能保證正確延續兩者。

前提是:真的有兩個狀態,而且它們需要不同的下一步。如果兩個狀態的下一步一樣,分不分得開無所謂。

它也不是在說同一個對話一定比分開的好,或交接一定有損耗。完整共享狀態可以讓交接幾乎無損;分開的系統也可能更快。本律講的是:所需的狀態能不能從交接資訊裡恢復,恢復不了就沒有保證。

還有一條老規矩:沒跑過的實驗不能寫得像有結果;小樣本不能說成普遍現象。

今晚做了什麼

材料

前一個工作階段的對話裡定了一條會改變後續行動的決策:API 回傳的時間欄位一律台北時間、帶 +08:00,不用 UTC。理由是前端不做時區換算,客戶都在台灣。

這個階段的任務:新增一個 endpoint,回傳 id、status、created_at 三個欄位,輸出一行範例 JSON,created_at 用 9 月 22 日下午三點。若交接資訊不足以決定某個欄位的格式,不要猜,改寫「需確認」。

三組:

拿到什麼
F 同一對話的全文,14 句
S 交接摘要,內容正確,但那條時區決策被刪掉了
H 同一份摘要,加上決策與理由

正確值是 2026-09-22T15:00:00+08:00。S 組的資訊分不開「+08:00 的世界」和「UTC 的世界」。

模型是 Claude Haiku 4.5,每組五次,共十五次。

量什麼

五類,程式判:含 +08:00;寫了需確認;用了 Z 或 UTC;有日期沒 offset;其他。

事先寫下的預期

F 和 H 應該輸出 +08:00。S 是檢驗點:寫需確認是辨識了缺漏,用 UTC 或不帶 offset 是默默選了一邊,答對是猜對,要先查洩漏。

材料、判準、預期,在第一次呼叫之前提交進版本控制。

結果

含 +08:00 需確認 用 UTC 沒 offset
F 全文 0 5 0 0
S 刪決策摘要 1 4 0 0
H 摘要加決策 0 5 0 0

F 和 H 跟預期不同。十次全部寫需確認,沒有一次輸出 JSON。

我沒交接的那兩個欄位

看它們問什麼就知道了。F 組的五次:「id 的型別、status 的可能值」。H 組的五次:一樣。

任務要求三個欄位。我只在交接裡定義了 created_at 的格式。id 是整數還是 UUID,status 有哪些值,我在任何一組都沒寫。然後我又告訴模型:不足以決定就不要猜。

它照做了。問的是我沒想到的那兩個欄位。

這不是判準錯了。這是我的交接在我沒打算測的地方就已經不充分。本律在材料層面先應驗了一次:交接資訊分不開「id 是整數」和「id 是 UUID」這兩個狀態,模型就不能保證接對,它選擇停下來問。

主判定分不開,缺漏清單分得開

主判定三組幾乎一樣,都是需確認。但看它們列的缺漏,不一樣。

缺漏清單裡列了 created_at 的格式
F 全文 0 / 5
S 刪決策摘要 3 / 5
H 摘要加決策 0 / 5

F 和 H 十次都沒把時間格式列進缺漏。它們知道那個已經定了,只問沒定的。S 組五次有三次把時間格式列進去:交接裡沒有,它辨識出來了。另外兩次沒辨識:一次只問 status,一次直接輸出了 +08:00 的 JSON。

那次直接猜 +08:00 的,依事先規則要查洩漏。摘要本文沒有任何台灣或時區的線索。最可能的來源是提示詞本身是中文,模型往台北時區猜。這算語言先驗猜中,不算交接有效。

要講清楚:「看缺漏清單」是我看完輸出之後才定的讀法,不在事先的判準裡。它是觀察,不是預先登記的結果。

三件這次不能往外推的事

第一,材料有洞。 id 和 status 沒交接,主判定因此失去鑑別力。

第二,一個決策、每組五次。

第三,猜對那次的來源是推測。 語言先驗只是最可能的解釋,量不到。

這條律怎麼被推翻

這條律講的是保證的條件,不太能被單次結果推翻。能被推翻的是「S 組資訊分不開兩個世界」這個判定:如果摘要裡其實有線索能推出 +08:00,那 S 就不是檢驗點。今晚摘要裡沒有,但提示詞語言可能是線索,這點誠實記下。

另一條路:如果 S 五次全部默默用 UTC,示範了「分不開就接錯」。今晚零次,模型多數時候停下來了。

下一次交接時多做的一件事

把下一步要用到的每個欄位,逐一問一次:交接裡有沒有寫。

不是問「重要的決定有沒有寫」。是問「下一步會碰到的每一個東西有沒有寫」。今晚我寫了重要的決定,漏了兩個不重要的欄位,模型就在那兩個欄位停下來。它停得對。

紀錄表這次加的是一個檢查:下一步的輸出有幾個欄位,交接就要有幾條。

本文的協作紀錄是:對話、摘要、交接文件、三份提示詞、判定程式與預期在任何一次呼叫之前提交,之後未修改;十五次輸出逐字保留,主判定由程式執行;「缺漏清單是否含 created_at」是判定後才命名的讀法,判準未回改,文章與紀錄均標明;材料的設計缺陷如實記錄。文章由 Claude 根據作者整理的寫作規則起草,作者尚未核對。這篇沒有做 Day 2 那種六個審查者的檢查。

下一篇談生成與檢索的分離:模型寫得出來,不代表它查過。


上一篇
第 14 律:存下來不等於記得,找得到才接得上工作
下一篇
第 16 律:AI 是找到答案,還是寫出一個像答案的句子?
系列文
生成式 AI 的 30 個定律:用跨模型小實驗理解可靠 AI 的工程原則29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言